<ui:composition template="../template/principal_II.xhtml"
                xmlns="http://www.w3.org/1999/xhtml"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:p="http://primefaces.org/ui" >


    <ui:define name="panelIzquierdo">
        <ui:include src="../inventario/menuGeneral.xhtml" />
    </ui:define>

    <ui:define name="panelDerecho">

        <p:panel header="#{inventarioStockBean.entrada and inventarioStockBean.salida ? msgs.nuevoMovimientoStock : msgs.nuevoAjuste}" 
                 style="min-height: 500px; ">
            <h:form id="fNewOrden" prependId="false">

                <p:growl id="mensaje" showDetail="true" />
                <h:panelGrid columns="2" cellspacing="2" columnClasses="colLabel,colDato" >

                    <h:outputText value="#{msgs.documento}: " />
                    <h:outputText value="#{inventarioStockBean.documentoST.documento.tipoDocumento.codigo} -
                                  #{inventarioStockBean.documentoST.documento.tipoDocumento.descripcion}" />

                    <h:outputText value="#{msgs.fechaDocumento}: " />
                    <h:outputText value="#{inventarioStockBean.documentoST.documento.fechaDocumento}" >
                        <f:convertDateTime pattern="dd/MM/yyyy" />
                    </h:outputText>

                    <h:outputText value="#{msgs.depositoEntrada}: " rendered="#{inventarioStockBean.entrada}"  />
                    <h:selectOneMenu value="#{inventarioStockBean.documentoST.depositoIngreso}" rendered="#{inventarioStockBean.entrada}" 
                                     required="true" converter="#{inventarioStockBean.conversorDepositos}"
                                     requiredMessage="#{msgs.depositoEntradaObligatorio}">
                        <f:selectItems var="de" itemValue="#{de}" itemLabel="#{de.descripcion}" value="#{inventarioStockBean.depositos}" />                       
                    </h:selectOneMenu>

                    <h:outputText value="#{msgs.depositoSalida}: " rendered="#{inventarioStockBean.salida}"  />
                    <h:selectOneMenu value="#{inventarioStockBean.documentoST.depositoEgreso}"  valueChangeListener="#{inventarioStockBean.vaciarLista}"
                                     required="true" converter="#{inventarioStockBean.conversorDepositos}" rendered="#{inventarioStockBean.salida}" 
                                     requiredMessage="#{msgs.depositoSalidaObligatorio}">
                        <f:selectItems var="de" itemValue="#{de}"  itemLabel="#{de.descripcion}" value="#{inventarioStockBean.depositos}" />
                        <p:ajax update="fNewOrden" />
                    </h:selectOneMenu>

                    <h:outputText value="#{msgs.observaciones}: " />
                    <h:inputTextarea rows="4" cols="30" value="#{inventarioStockBean.documentoST.observaciones}" />


                </h:panelGrid>

                <div style="text-align:left" >
                    <p:commandButton value="#{msgs.guardar}" 
                                     action="#{inventarioStockBean.guardar}" 
                                     update="fNewOrden"
                                     />
                    <p:commandButton value="#{msgs.obtenerReporte}" action="#{inventarioStockBean.generarReporte}" ajax="false" 
                                     rendered="#{inventarioStockBean.entrada and inventarioStockBean.salida}" />

                </div>
                <br/>

                <p:dataTable id="listaProductos" value="#{inventarioStockBean.itemDetalles}" var="item"
                             emptyMessage="#{msgs.movimientoNoItems}" rows="10" paginator="true" paginatorAlwaysVisible="false" >

                    <f:facet name="header">
                        <h:outputText value="#{msgs.itemsDocumento}" styleClass="headerTable" />
                    </f:facet>

                    <p:column headerText="#{msgs.pcc_producto}">
                        <h:outputText value="#{item.producto.descripcion}" />
                        <p:commandButton image="find16" rendered="#{empty item.producto}"
                                         oncomplete="dlg_producto.show()" />

                    </p:column>

                    <p:column headerText="#{msgs.pcc_UM}" style="width: 15px;">
                        <h:outputText value="#{item.producto.unidadMedida.codigo}" /> 
                    </p:column>                   

                    <p:column headerText="#{msgs.serie}">
                        <h:panelGroup rendered="#{(inventarioStockBean.entrada and inventarioStockBean.salida) or (!inventarioStockBean.entrada and inventarioStockBean.salida)}">
                            <h:outputText value="#{item.serie}" />
                            <p:commandButton image="find16" 
                                             actionListener="#{inventarioStockBean.cargarSeries(item.producto)}" 
                                             rendered="#{not empty item.producto and empty item.serie}" update="frmBuscadorSerie"
                                             oncomplete="dlg_serie.show()" />
                        </h:panelGroup>
                        <p:inputText value="#{item.serie}" rendered="#{inventarioStockBean.entrada and !inventarioStockBean.salida}"  />
                    </p:column>

                    <p:column headerText="#{msgs.pcc_cantidad}" style="width: 20px;">
                        <p:inputText value="#{item.cantidad}"  >
                            <f:ajax event="keyup" render="listaProductos" />
                        </p:inputText>
                    </p:column>

                    <p:column headerText="#{msgs.accion}" style="width: 20px;">
                        <p:commandButton rendered="#{item.id == -1}"
                                         action="#{inventarioStockBean.agregarItem(item)}" image="add16"  
                                         update="fNewOrden"
                                         />
                        <p:commandButton immediate="true" rendered="#{empty item.id}"
                                         actionListener="#{inventarioStockBean.eliminarItem(item)}" image="delete16" 
                                         update="fNewOrden"
                                         />
                    </p:column>
                </p:dataTable>

            </h:form>
        </p:panel>
        <ui:include src="buscadorProducto.xhtml" />
        <ui:include src="buscadorSerie.xhtml" />
 
    </ui:define>
</ui:composition>